//
//  DettaglioIntervento.m
//  InterventixApp
//
//  Created by Diego Falcinelli on 09/05/13.
//
//

#import "DettaglioIntervento.h"
#import "DateUtil.h"

@implementation DettaglioIntervento
-(NSMutableDictionary *) convertToDictionary{
    NSMutableDictionary *diz = [NSMutableDictionary dictionaryWithCapacity:0];
    [diz setObject:self.iddettagliointervento               forKey:@"iddettagliointervento"];
    [diz setObject:self.tipo                                forKey:@"tipo"];
    [diz setObject:self.oggetto                             forKey:@"oggetto"];
    [diz setObject:self.descrizione                         forKey:@"descrizione"];
    [diz setObject:[DateUtil NSDateToNSNumber:self.inizio]  forKey:@"inizio"];
    [diz setObject:[DateUtil NSDateToNSNumber:self.fine]    forKey:@"fine"];
    [diz setObject:self.tecniciintervento                   forKey:@"tecniciintervento"];
    return diz;
}

-(void) readFromMutableDictionary:(NSMutableDictionary *) diz{
    self.iddettagliointervento      = [NSNumber numberWithInt:[[diz objectForKey:@"iddettagliointervento"] intValue]];
    self.tipo                       = [diz objectForKey:@"tipo"];
    self.oggetto                    = [diz objectForKey:@"oggetto"];
    self.descrizione                = [diz objectForKey:@"descrizione"];
    self.inizio                     = [DateUtil LongToNSDate:[[diz objectForKey:@"inizio"] longLongValue]];
    self.fine                       = [DateUtil LongToNSDate:[[diz objectForKey:@"fine"] longLongValue]];
    NSArray *arr = [diz objectForKey:@"tecniciintervento"];
    self.tecniciintervento  = [[NSMutableArray alloc] initWithCapacity:arr.count];
    for(NSNumber *n in arr){
        [self.tecniciintervento addObject:n];
    }
}
-(void) readFromDictionary:(NSDictionary *) diz{
    self.iddettagliointervento      = [NSNumber numberWithInt:[[diz objectForKey:@"iddettagliointervento"] intValue]];
    self.tipo                       = [diz objectForKey:@"tipo"];
    self.oggetto                    = [diz objectForKey:@"oggetto"];
    self.descrizione                = [diz objectForKey:@"descrizione"];
    self.inizio                     = [DateUtil LongToNSDate:[[diz objectForKey:@"inizio"] longLongValue]];
    self.fine                       = [DateUtil LongToNSDate:[[diz objectForKey:@"fine"] longLongValue]];
    
    NSArray *arr = [diz objectForKey:@"tecniciintervento"];
    self.tecniciintervento  = [[NSMutableArray alloc] initWithCapacity:arr.count];
    for(NSNumber *n in arr){
        [self.tecniciintervento addObject:n];
    }
}

-(unsigned long long) hashcode{
    unsigned long long h = [self.iddettagliointervento hash];
    h+= [self.tipo hash];
    h+= [self.oggetto hash];
    h+= [self.descrizione hash];
    h+= [self.inizio hash] *22;
    h+= [self.fine hash] * 132;
    for(NSNumber *n in self.tecniciintervento){
        h+= [n hash] ;
    }
    h+= ([self.tecniciintervento count]*33);
    return h;
}

-(BOOL) check{
    if([self.oggetto isEqual:[NSNull null]] || self.oggetto == nil || [self.oggetto isEqualToString:@""] ||
       self.tipo == nil || [self.tipo isEqual:[NSNull null]] ||
       self.inizio == nil || [self.inizio isEqual:[NSNull null]] ||
       self.fine == nil || [self.fine isEqual:[NSNull null]]
       ){
        return false;
    }
    return true;
}

-(id)clone
{
    DettaglioIntervento *c = [[DettaglioIntervento alloc] init];
    c.iddettagliointervento = [self.iddettagliointervento copy];
    c.tipo = [self.tipo copy];
    c.oggetto = [self.oggetto copy];
    c.descrizione = [self.descrizione copy];
    c.inizio = [self.inizio copy];
    c.fine = [self.fine copy];
    c.tecniciintervento = [self.tecniciintervento copy];
    return c;
}

@end
